﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SCS.Common.Models;

namespace SCS.DAL
{
    public interface IUnitOfWork : IDisposable
    {
        void Commit();
        SCSContext GetContext();
        IRepository<SchoolYear> SchoolYear { get; }
        IRepository<Term> Term { get; }
        IClassRepository Class { get; }
        IRepository<ClassInSchoolYear> ClassInSchoolYear { get; }
        ILearnerRepository Learner { get; }
        ITeacherRepository Teacher { get; }
        IRepository<Subject> Subject { get; }
        IRepository<TeachingAssignment> TeachingAssignment { get; }
        IRepository<Grade> Grade { get; }
        ICommentRepository Comment { get; }
        IRepository<GradeType> GradeType { get; }
        IRepository<MembershipRole> MembershipRole { get; }
        IMembershipRepository MembershipUser { get; }
        IParentRepository Parent { get; }
        IParent2Repository Parent2 { get; }
        IRepository<Parent> ParentViewTeacher { get; }
        IPrivateMessageRepository PrivateMessage { get; }
    }
}
